home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / m97.c < prev    next >
C/C++ Source or Header  |  2000-02-01  |  8KB  |  262 lines

  1. /*
  2.  
  3. IREM M97 board
  4.  
  5. CPU is V30? V60?(Irem/Nanao custom), Z80+YM2151 for sound
  6.  
  7. The main CPU is encrypted.
  8. It uses a simple opcode lookup encryption, the painful part is that it's
  9. preprogrammed into the IREM D800 cpu and isn't a algorithmic based one.
  10.  
  11. So unless someone wants to go though all the permutations I don't see it
  12. being hacked very soon
  13.  
  14.  
  15. games running on this:
  16.  
  17. Risky Challenge/Gussun Oyoyo D8000019A1
  18. Shisensho II                 D8000020A1 023 9320NK700
  19. Quiz F-1 1,2 Finish          NANAO 08J27291A4 014 9147KK700
  20. Bomber Man World/Atomic Punk
  21.  
  22. */
  23.  
  24.  
  25. #include "driver.h"
  26.  
  27.  
  28. int m97_vh_start(void)
  29. {
  30.     return 0;
  31. }
  32.  
  33. void m97_vh_stop(void)
  34. {
  35. }
  36.  
  37. void m97_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh)
  38. {
  39. }
  40.  
  41.  
  42. static struct MemoryReadAddress readmem[] =
  43. {
  44.     { 0x80000, 0xfffff, MRA_ROM },
  45.     { -1 }    /* end of table */
  46. };
  47.  
  48. static struct MemoryWriteAddress writemem[] =
  49. {
  50.     { 0x80000, 0xfffff, MWA_ROM },
  51.     { -1 }    /* end of table */
  52. };
  53.  
  54.  
  55.  
  56. INPUT_PORTS_START( m97 )
  57.     PORT_START    /* IN0 */
  58. INPUT_PORTS_END
  59.  
  60.  
  61.  
  62. static struct GfxLayout charlayout =
  63. {
  64.     8,8,    /* 8*8 characters */
  65.     65536,    /* 65536 characters */
  66.     4,    /* 4 bits per pixel */
  67.     { 3*65536*8*8, 2*65536*8*8, 1*65536*8*8, 0*65536*8*8 },    /* the bitplanes are separated */
  68.     { 0, 1, 2, 3, 4, 5, 6, 7 },
  69.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  70.     8*8    /* every char takes 8 consecutive bytes */
  71. };
  72.  
  73. static struct GfxDecodeInfo gfxdecodeinfo[] =
  74. {
  75.     { REGION_GFX1, 0, &charlayout, 0, 8 },
  76.     { -1 } /* end of array */
  77. };
  78.  
  79.  
  80. #if 0
  81. static struct YM2151interface ym2151_interface =
  82. {
  83.     1,            /* 1 chip */
  84.     3579545,    /* 3.579545 MHz */
  85.     { YM3012_VOL(50,MIXER_PAN_LEFT,50,MIXER_PAN_RIGHT) },
  86. {0},//    { irq_handler },
  87.     { 0 }
  88. };
  89. #endif
  90.  
  91.  
  92. static struct MachineDriver machine_driver_m97 =
  93. {
  94.     /* basic machine hardware */
  95.     {
  96.         {
  97.             CPU_V30,
  98.             32000000/4,    /* ??? */
  99.             readmem,writemem,0,0,
  100.             ignore_interrupt,1
  101.         },
  102. #if 0
  103.         {
  104.             CPU_Z80 | CPU_AUDIO_CPU,
  105.             26666666/8,    /* ??? */
  106.             sound_readmem,sound_writemem,0,0,
  107.             ignore_interrupt,0
  108.         }
  109. #endif
  110.     },
  111.     60, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  112.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  113.     0,
  114.  
  115.     /* video hardware */
  116.     384, 280, { 0, 384-1, 0, 280-1 },
  117.     gfxdecodeinfo,
  118.     256,256,
  119.     0,
  120.  
  121.     VIDEO_TYPE_RASTER,
  122.     0,
  123.     m97_vh_start,
  124.     m97_vh_stop,
  125.     m97_vh_screenrefresh,
  126.  
  127.     /* sound hardware */
  128. #if 0
  129.     SOUND_SUPPORTS_STEREO,0,0,0,
  130.     {
  131.         {
  132.             SOUND_YM2151,
  133.             &ym2151_interface
  134.         }
  135.     }
  136. #endif
  137. };
  138.  
  139.  
  140.  
  141. /***************************************************************************
  142.  
  143.   Game driver(s)
  144.  
  145. ***************************************************************************/
  146.  
  147. ROM_START( riskchal )
  148.     ROM_REGION( 0x100000, REGION_CPU1 )
  149.     ROM_LOAD_V20_EVEN( "rc_h0.rom",    0x80000, 0x40000, 0x4c9b5344 )
  150.     ROM_LOAD_V20_ODD ( "rc_l0.rom",    0x80000, 0x40000, 0x0455895a )
  151.  
  152.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  153.     ROM_LOAD( "rc_sp.rom",    0x0000, 0x10000, 0xbb80094e )
  154.  
  155.     ROM_REGION( 0x200000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  156.     ROM_LOAD( "rc_c0.rom",    0x000000, 0x80000, 0x84d0b907 )
  157.     ROM_LOAD( "rc_c1.rom",    0x080000, 0x80000, 0xcb3784ef )
  158.     ROM_LOAD( "rc_c2.rom",    0x100000, 0x80000, 0x687164d7 )
  159.     ROM_LOAD( "rc_c3.rom",    0x180000, 0x80000, 0xc86be6af )
  160.  
  161.     ROM_REGION( 0x40000, REGION_SOUND1 )    /* ADPCM samples */
  162.     ROM_LOAD( "rc_v0.rom",    0x0000, 0x40000, 0xcddac360 )
  163. ROM_END
  164.  
  165. ROM_START( gussun )
  166.     ROM_REGION( 0x100000, REGION_CPU1 )
  167.     ROM_LOAD_V20_EVEN( "l4_h0.rom",    0x80000, 0x40000, 0x9d585e61 )
  168.     ROM_LOAD_V20_ODD ( "l4_l0.rom",    0x80000, 0x40000, 0xc7b4c519 )
  169.  
  170.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  171.     ROM_LOAD( "rc_sp.rom",    0x0000, 0x10000, 0xbb80094e )
  172.  
  173.     ROM_REGION( 0x200000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  174.     ROM_LOAD( "rc_c0.rom",    0x000000, 0x80000, 0x84d0b907 )
  175.     ROM_LOAD( "rc_c1.rom",    0x080000, 0x80000, 0xcb3784ef )
  176.     ROM_LOAD( "rc_c2.rom",    0x100000, 0x80000, 0x687164d7 )
  177.     ROM_LOAD( "rc_c3.rom",    0x180000, 0x80000, 0xc86be6af )
  178.  
  179.     ROM_REGION( 0x40000, REGION_SOUND1 )    /* ADPCM samples */
  180.     ROM_LOAD( "rc_v0.rom",    0x0000, 0x40000, 0xcddac360 )
  181. ROM_END
  182.  
  183. ROM_START( shisen2 )
  184.     ROM_REGION( 0x100000, REGION_CPU1 )
  185.     ROM_LOAD_V20_EVEN( "sis2-ho-.rom", 0x80000, 0x40000, 0x6fae0aea )
  186.     ROM_LOAD_V20_ODD ( "sis2-lo-.rom", 0x80000, 0x40000, 0x2af25182 )
  187.  
  188.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  189.     ROM_LOAD( "sis2-sp-.rom", 0x0000, 0x10000, 0x6fc0ff3a )
  190.  
  191.     ROM_REGION( 0x200000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  192.     ROM_LOAD( "ic81.rom",     0x000000, 0x80000, 0x5a7cb88f )
  193.     ROM_LOAD( "ic82.rom",     0x080000, 0x80000, 0x54a7852c )
  194.     ROM_LOAD( "ic83.rom",     0x100000, 0x80000, 0x2bd65dc6 )
  195.     ROM_LOAD( "ic84.rom",     0x180000, 0x80000, 0x876d5fdb )
  196. ROM_END
  197.  
  198. ROM_START( quizf1 )
  199.     ROM_REGION( 0x200000, REGION_CPU1 )
  200.     ROM_LOAD_V20_EVEN( "qf1-h0-.77",   0x080000, 0x40000, 0x280e3049 )
  201.     ROM_LOAD_V20_ODD ( "qf1-l0-.79",   0x080000, 0x40000, 0x94588a6f )
  202.     ROM_LOAD_V20_EVEN( "qf1-h1-.78",   0x100000, 0x80000, 0xc6c2eb2b )    /* banked? */
  203.     ROM_LOAD_V20_ODD ( "qf1-l1-.80",   0x100000, 0x80000, 0x3132c144 )    /* banked? */
  204.  
  205.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  206.     ROM_LOAD( "qf1-sp-.33",   0x0000, 0x10000, 0x0664fa9f )
  207.  
  208.     ROM_REGION( 0x200000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  209.     ROM_LOAD( "qf1-c0-.81",   0x000000, 0x80000, 0xc26b521e )
  210.     ROM_LOAD( "qf1-c1-.82",   0x080000, 0x80000, 0xdb9d7394 )
  211.     ROM_LOAD( "qf1-c2-.83",   0x100000, 0x80000, 0x0b1460ae )
  212.     ROM_LOAD( "qf1-c3-.84",   0x180000, 0x80000, 0x2d32ff37 )
  213.  
  214.     ROM_REGION( 0x40000, REGION_SOUND1 )    /* ADPCM samples */
  215.     ROM_LOAD( "qf1-v0-.30",   0x0000, 0x40000, 0xb8d16e7c )
  216. ROM_END
  217.  
  218. ROM_START( atompunk )
  219.     ROM_REGION( 0x100000, REGION_CPU1 )
  220.     ROM_LOAD_V20_EVEN( "bm2-ho-a.9f",  0x080000, 0x40000, 0x7d858682 )
  221.     ROM_LOAD_V20_ODD ( "bm2-lo-a.9k",  0x080000, 0x40000, 0xc7568031 )
  222.  
  223.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  224.     ROM_LOAD( "5j",           0x0000, 0x10000, 0x6bc1689e )
  225.  
  226.     ROM_REGION( 0x200000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  227.     ROM_LOAD( "bbm2_c0.bin",  0x000000, 0x40000, 0xe7ce058a )
  228.     ROM_LOAD( "bbm2_c1.bin",  0x080000, 0x40000, 0x636a78a9 )
  229.     ROM_LOAD( "bbm2_c2.bin",  0x100000, 0x40000, 0x9ac2142f )
  230.     ROM_LOAD( "bbm2_c3.bin",  0x180000, 0x40000, 0x47af1750 )
  231.  
  232.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* ADPCM samples */
  233.     ROM_LOAD( "5e",           0x0000, 0x20000, 0x4ad889ed )
  234. ROM_END
  235.  
  236. ROM_START( bbmanw )
  237.     ROM_REGION( 0x100000, REGION_CPU1 )
  238.     ROM_LOAD_V20_EVEN( "bbm2_h0.bin",  0x080000, 0x20000, 0xf694b461 )
  239.     ROM_LOAD_V20_ODD ( "bbm2_l0.bin",  0x080000, 0x20000, 0x755126cc )
  240.  
  241.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  242.     ROM_LOAD( "bbm2sp-b.bin", 0x0000, 0x10000, 0xb8d8108c )
  243.  
  244.     ROM_REGION( 0x200000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  245.     ROM_LOAD( "bbm2_c0.bin",  0x000000, 0x40000, 0xe7ce058a )
  246.     ROM_LOAD( "bbm2_c1.bin",  0x080000, 0x40000, 0x636a78a9 )
  247.     ROM_LOAD( "bbm2_c2.bin",  0x100000, 0x40000, 0x9ac2142f )
  248.     ROM_LOAD( "bbm2_c3.bin",  0x180000, 0x40000, 0x47af1750 )
  249.  
  250.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* ADPCM samples */
  251.     ROM_LOAD( "bbm2_vo.bin",  0x0000, 0x20000, 0x0ae655ff )
  252. ROM_END
  253.  
  254.  
  255.  
  256. GAMEX( 1992, atompunk, 0,        m97, m97, 0, ROT0, "Irem America (licensed from Hudson Soft)", "Atomic Punk (US)", GAME_NOT_WORKING )
  257. GAMEX( 1992, bbmanw,   atompunk, m97, m97, 0, ROT0, "Irem (licensed from Hudson Soft)", "Bomber Man World (Japan)", GAME_NOT_WORKING )
  258. GAMEX( 1992, quizf1,   0,        m97, m97, 0, ROT0, "Irem", "Quiz F-1 1,2finish", GAME_NOT_WORKING )
  259. GAMEX( 1993, riskchal, 0,        m97, m97, 0, ROT0, "Irem", "Risky Challenge", GAME_NOT_WORKING )
  260. GAMEX( 1993, gussun,   riskchal, m97, m97, 0, ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_NOT_WORKING )
  261. GAMEX( 1993, shisen2,  0,        m97, m97, 0, ROT0, "Tamtex", "Shisensho II", GAME_NOT_WORKING )
  262.